package model;

import java.io.Serializable;
import java.util.Collection;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.GeneratedValue;
import javax.persistence.Table;

@Entity
@Table(name = "VIATURA")
public class Viatura implements Serializable {

	private static final long serialVersionUID = 881460872227727850L;
	@Id
	@Column(name = "VIAT_ID")
	@GeneratedValue
	private Integer id;
	
	@Column(name = "VIAT_TX_PLACA" , nullable=false)
	private String placa;
	
	@ManyToMany(mappedBy = "colViatura")
	private Collection<Tecnico> colTecnico;
	
	@OneToMany(mappedBy = "viatura")
	private Collection<Equipamento> colEquipamento;
	@OneToOne(mappedBy="estoqueViatura")
	private EstoqueViatura estoqueViatura;
	@ManyToMany
	@JoinTable(name = "VIATURA_PECA", 
			inverseJoinColumns = { @JoinColumn(name = "ITES_ID", referencedColumnName = "ITES_ID") }, 
			joinColumns = { @JoinColumn(name = "VIAT_ID", referencedColumnName = "VIAT_ID") })
	private Collection<Peca> colPeca;

	public Collection<Tecnico> getColTecnico() {
		return colTecnico;
	}

	public void setColTecnico(Collection<Tecnico> colTecnico) {
		this.colTecnico = colTecnico;
	}

	public Collection<Equipamento> getColEquipamento() {
		return colEquipamento;
	}

	public void setColEquipamento(Collection<Equipamento> colEquipamento) {
		this.colEquipamento = colEquipamento;
	}

	public EstoqueViatura getEstoqueViatura() {
		return estoqueViatura;
	}

	public void setEstoqueViatura(EstoqueViatura estoque) {
		this.estoqueViatura = estoque;
	}

	public Integer getId() {
		return id;
	}

	public Collection<Peca> getColPeca() {
		return colPeca;
	}

	public void setColPeca(Collection<Peca> colPeca) {
		this.colPeca = colPeca;
	}

	public String getPlaca() {
		return placa;
	}

	public void setPlaca(String placa) {
		this.placa = placa;
	}

}
